package com.yc.jpyy.mobile.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import org.springframework.dao.DataAccessException;

import com.yc.jpyy.base.dao.BaseDao;


public interface TeacherDao extends BaseDao {
	// 教练登录
	List<Map<String, Object>> teacherLogin(Map<String, Object> paramsMap) throws DataAccessException;
	
	// 修改教练电话
	int updateTeacherPhoneById(Map<String, Object> paramsMap)throws DataAccessException;
	
	// 获取教练旧密码
	List<Map<String, Object>> getTeacherOldPwdByID(@Param("id") String id) throws DataAccessException;
			
	// 修改教练登录密码
	int updateTeacherPwd(Map<String, Object> paramsMap) throws DataAccessException;
	
	// 忘记密码身份验证
	List<Map<String,Object>> getTeacherData(@Param("mobilePhone") String mobilePhone,@Param("IdCardNo") String IdCardNo) throws DataAccessException;
						
	// 获取3公告信息
	List<Map<String, Object>> getNews(Map<String, Object> paramsMap)
			throws DataAccessException;
	
	// 根据课程ID获取预约信息
	List<Map<String, Object>> getAppointmentDetailByCourseID(@Param("courseID") String courseID,@Param("imgUrl") String imgUrl) throws DataAccessException;
	
	// 查询课程开始时间
	String getCourseStartTime(@Param("appointId") String appointId)throws DataAccessException;
		
	
	// 缺勤标记
	int updateAppointmentDetailAbsent(@Param("appointId") String appointId)throws DataAccessException;
	
	// 查询缺勤次数
	int checkStudentAbsentCount(@Param("studentId") String studentId)throws DataAccessException;
	
	// 查询是否有黑名单记录
	int selectStudentBlack(@Param("studentId") String studentId)throws DataAccessException;
		
	// 拉入黑名单
	int addStudentBlack(@Param("studentId") String studentId)throws DataAccessException;
	
	// 查询是否有黑名单记录
	int updateStudentBlack(@Param("studentId") String studentId)throws DataAccessException;
	
	// 根据教练ID七天课程列表 
	List<Map<String, Object>> getCourseCountByTecID(@Param("teacherId") String teacherId) throws DataAccessException;
	
	// 根据教练ID获取一天课程列表 
	List<Map<String, Object>> getCourseListByTecID(Map<String, Object> paramsMap) throws DataAccessException;
	
	// 教课学员查询接口(学习进度列表页) 
	List<Map<String, Object>> getTeacherStuListByTecID(@Param("teacherid") String teacherid) throws DataAccessException;
	
	// 历史课程查询接口  根据教练ID、年月（2017-03）
	List<Map<String, Object>> getOldTeacherList(Map<String, Object> paramsMap) throws DataAccessException;
	
	//2.1	教练基本信息获取-终端
	List<Map<String, Object>> getTeacherInfo(Map<String, Object> paramsMap) throws DataAccessException;
	
	//2.2	教练所带学员信息-终端
	List<Map<String, Object>> getTechStudents(@Param("Coachnum") String Coachnum,@Param("imgUrl") String imgUrl) throws DataAccessException;

	//2.5	教练教课记录-终端
	List<Map<String, Object>> getCoachSignResultForTerminater(@Param("Coachnum") String Coachnum) throws DataAccessException;
	
	//2.9	教练预约教程获取-终端
	List<Map<String, Object>> getAppointMentTeachCourses(@Param("coachNum") String coachNum) throws DataAccessException;
	
	//2.10	教练培训记录获取-终端
	List<Map<String, Object>> getTrainingRecords(Map<String, Object> paramsMap) throws DataAccessException;
	//教练基本信息获取-人脸识别
	Map<String, Object> getTeacherInfoForFaceCheck(Map<String, Object> paramsMap) throws DataAccessException;

	// 根据教练全国编号查UID-人脸识别
	String getUIDForFaceCheck(@Param("Coachnum") String Coachnum) throws DataAccessException;
	
	// 根据教练身份证UID查重-人脸识别
	int isExistUIDForFaceCheck(@Param("UID") String UID) throws DataAccessException;
	
	// 根据教练全国编号修改身份证UID-人脸识别
	int updateUIDForFaceCheck(@Param("UID") String UID,@Param("Coachnum") String Coachnum) throws DataAccessException;
	
	//查询教练某个时间段内的课程ID
	List<Map<String,Object>> getCourseIds(Map<String, Object> paramsMap) throws DataAccessException;
	
	//添加教练请假
	int addTeacherLeave(Map<String, Object> paramsMap) throws DataAccessException;
	
	//获取请假类型
	List<Map<String,Object>> getLeaveType() throws DataAccessException;
			
}
